package cn.s1995.sloth.bizs.constant;

/**
 * BizCst
 *
 * @Author penf
 * @Description 业务常量
 * @Date 2022/03/03 15:12
 */
public interface BizCst {

    /**
     * 登录方式：1.账号密码 2.手机号验证码
     */
    interface LoginWay {
        /**
         * 账号密码
         */
        int accountAndPassword = 1;
        /**
         * 手机号验证码
         */
        int mobileAndValidCode = 2;
    }

    /**
     * 通用是否： 1.是 0.否
     */
    interface CommonBool {
        /**
         * 是
         */
        int yes = 1;
        /**
         * 否
         */
        int no = 0;
    }

    /**
     * 通用启用禁用状态： 1.启用 0.禁用
     */
    interface CommonEnableState {
        /**
         * 启用
         */
        int enable = 1;
        /**
         * 禁用
         */
        int disabled = 0;
    }

    /**
     * 通用启用冻结状态： 0-正常 9-冻结
     */
    interface CommonStatusType {
        /**
         * 正常
         */
        int enable = 0;
        /**
         * 冻结
         */
        int disabled = 9;
    }

    /**
     * 通用上下架状态： 1.上架 0.下架
     */
    interface CommonSaleState {
        /**
         * 上架
         */
        int up = 1;
        /**
         * 下架
         */
        int down = 0;
    }

    /**
     * 通用审核状态： 0.待审核 1.已通过 2.未通过
     */
    interface CommonAuditState {
        /**
         * 待审核
         */
        int toBeAudit = 0;
        /**
         * 已通过
         */
        int approve = 1;
        /**
         * 未通过
         */
        int reject = 2;
    }

    /**
     * 登录相关
     */
    interface Login {

        /**
         * 登录方式
         */
        interface Method {
            /**
             * 手机号验证码
             */
            int mobileAndValidCode = 1;
            /**
             * 账号密码
             */
            int accountAndPassword = 2;
        }

    }


    /**
     * 来源：1.APP 2.H5 3.小程序
     */
    interface CommonSource {
        /**
         * APP
         */
        int app = 1;
        /**
         * H5
         */
        int h5 = 2;
        /**
         * 小程序
         */
        int mini = 3;
    }


    /**
     * 短信
     */
    interface Sms {
        /**
         * 场景：1.注册 2.忘记密码
         */
        interface Scene {
            /**
             * 注册
             */
            int register = 1;
            /**
             * 忘记密码
             */
            int forgetPassword = 2;
            /**
             * 修改密码
             */
            int updatePassword = 3;
            /**
             * 修改手机号
             */
            int updateMobile = 4;
        }
    }

    /**
     * 短信日志
     */
    interface SmsLog {
        /**
         * 短信类型：1.注册 2.登录 3.忘记密码 4.修改密码
         */
        interface Type {
            /**
             * 注册
             */
            int register = 1;
            /**
             * 登录
             */
            int login = 2;
            /**
             * 忘记密码
             */
            int forgetPassword = 3;
            /**
             * 修改密码
             */
            int updatePassword = 4;
        }
    }

    /**
     * 用户
     */
    interface User {
        /**
         * 性别：0.未知 1.男 2.女 3.其他
         */
        interface Gender {
            /**
             * 未知
             */
            int disabled = 0;
            /**
             * 男
             */
            int man = 1;
            /**
             * 女
             */
            int woman = 2;
            /**
             * 其他
             */
            int other = 3;
        }

        /**
         * 角色：1.普通用户
         */
        interface Role {
            /**
             * 普通用户
             */
            int normal = 1;
        }

    }

    /**
     * 用户授权
     */
    interface UserAuth {

        /**
         * 类型：1.微信 2.支付宝 3.谷歌 4.苹果 5.facebook 6.X
         */
        interface Type {
            /**
             * 微信
             */
            int wechat = 1;
            /**
             * 支付宝
             */
            int alipay = 2;
            /**
             * 谷歌
             */
            int google = 3;
            /**
             * 苹果
             */
            int apple = 4;
            /**
             * facebook
             */
            int facebook = 5;
            /**
             * X(推特)
             */
            int x = 6;
        }

    }

    /**
     * 用户点赞
     */
    interface UserLike {
        /**
         * 动作：1.点赞 2.收藏 3.分享
         */
        interface Action {
            /**
             * 点赞
             */
            int like = 1;
            /**
             * 收藏
             */
            int collection = 2;
            /**
             * 分享
             */
            int share = 3;
        }

        /**
         * 类型：1.产品 2.店铺 3.视频 4.产品评论 5.视频评论
         */
        interface Type {
            /**
             * 产品
             */
            int prod = 1;
            /**
             * 店铺
             */
            int shop = 2;
            /**
             * 视频
             */
            int video = 3;
            /**
             * 产品评论
             */
            int prodComment = 4;
            /**
             * 视频评论
             */
            int videoComment = 5;
        }
    }

    /**
     * 用户收藏
     */
    interface UserCollection {

        /**
         * 类型：1.产品 2.店铺 3.视频
         */
        interface Type {
            /**
             * 产品
             */
            int prod = 1;
            /**
             * 店铺
             */
            int shop = 2;
            /**
             * 视频
             */
            int video = 3;
        }
    }

    /**
     * 用户关注
     */
    interface UserFollow {
        /**
         * 类型：1.店铺 2.用户
         */
        interface Type {
            /**
             * 店铺
             */
            int shop = 1;
            /**
             * 用户
             */
            int user = 2;
        }
    }

    /**
     * 用户分享
     */
    interface UserShare {
        /**
         * 动作：1.点赞 2.收藏 3.分享
         */
        interface Action {
            /**
             * 点赞
             */
            int like = 1;
            /**
             * 收藏
             */
            int collection = 2;
            /**
             * 分享
             */
            int share = 3;
        }

        /**
         * 类型：1.产品 2.店铺 3.视频
         */
        interface Type {
            /**
             * 产品
             */
            int prod = 1;
            /**
             * 店铺
             */
            int shop = 2;
            /**
             * 视频
             */
            int video = 3;
        }
    }

    /**
     * 用户反馈
     */
    interface UserFeedback {
        /**
         * 类型：1.功能异常 2.建议优化 3.其他
         */
        interface Type {
            /**
             * 功能异常
             */
            int abnormalFunction = 1;
            /**
             * 建议优化
             */
            int suggestedOptimization = 2;
            /**
             * 其他
             */
            int other = 1;
        }
    }


    /**
     * 店铺
     */
    interface Shop {
        /**
         * 类型：1.普店
         */
        interface Type {
            /**
             * 普店
             */
            int normal = 1;
        }

    }

    /**
     * 产品
     */
    interface Prod {

        /**
         * 佣金类型：1.百分比 2.固定额
         */
        interface CommissionType {
            /**
             * 百分比
             */
            int percent = 1;
            /**
             * 普店
             */
            int fixed = 2;
        }
    }

    /**
     * 产品分组
     */
    interface ProdGroup {
        /**
         * 列表样式(1.一列一个 2.一列两个 3.一列三个)
         */
        interface Style {
            /**
             * 一列一个
             */
            int col1 = 1;
            /**
             * 一列两个
             */
            int col2 = 2;
            /**
             * 一列三个
             */
            int col3 = 3;
        }
    }

    /**
     * 产品分类
     */
    interface ProdCategory {


    }

    /**
     * 产品属性
     */
    interface ProdProp {

        /**
         * 规则 1:销售属性(规格); 2:参数属性;
         * <p>规格属性 (用于产品产品发布时，关联sku)</p>
         * <p>规格参数(用于产品搜索时，与分类关联搜索)</p>
         */
        interface Rule {
            /**
             * 销售属性(规格)
             */
            int sale = 1;
            /**
             * 参数属性
             */
            int param = 2;
        }
    }

    /**
     * 支付流水
     */
    interface PayFlow {
        /**
         * 类型：1.订单 2.订单退款 3.充值 4.提现
         */
        interface Type {
            /**
             * 订单
             */
            int order = 1;
            /**
             * 订单退款
             */
            int orderRefund = 2;
            /**
             * 充值
             */
            int recharge = 3;
            /**
             * 提现
             */
            int withdraw = 4;
        }

        /**
         * 支付状态：0.未支付 1.已支付 -1.支付失败
         */
        interface State {
            /**
             * 已支付
             */
            int paid = 1;
            /**
             * 未支付
             */
            int unpay = 0;

            /**
             * 支付失败
             */
            int failure = -1;
        }

    }


    /**
     * 产品评价
     */
    interface ProdEvaluate {
        /**
         * 综合评价：1.好评 2.中评 3.差评
         */
        interface Type {
            /**
             * 好评
             */
            int good = 1;
            /**
             * 中评
             */
            int middle = 2;
            /**
             * 差评
             */
            int bad = 3;
        }

    }

    /**
     * 支付方式：1.微信支付 2.支付宝 3.手动代付 4.paypal 5.google 6.apple 7.stripe
     */
    interface PayMethod {
        /**
         * 微信支付
         */
        int wechat = 1;
        /**
         * 支付宝
         */
        int alipay = 2;
        /**
         * 手动代付
         */
        int manual = 3;
        /**
         * paypal
         */
        int paypal = 4;
        /**
         * google
         */
        int google = 5;
        /**
         * apple
         */
        int apple = 6;
        /**
         * stripe
         */
        int stripe = 7;
    }


    /**
     * 订单
     */
    interface Order {
        /**
         * 类型：0-测试单 1-现货单 2-定制单
         */
        interface Type {
            /**
             * 测试单
             */
            int test = 0;
            /**
             * 现货单
             */
            int cash = 1;
            /**
             * 定制单
             */
            int custom = 2;
        }

        /**
         * 状态：1.待付款 2.待发货 3.待收货 4.待评价 5.已完成 6.已取消
         */
        interface State {
            /**
             * 待付款
             */
            int unpay = 1;
            /**
             * 已付款待发货
             */
            int paid = 2;
            /**
             * 已发货待收货
             */
            int consignment = 3;
            /**
             * 已收货待评价
             */
            int confirm = 4;
            /**
             * 已完成
             */
            int completed = 5;
            /**
             * 已取消
             */
            int canceled = 6;
        }


        /**
         * 订单关闭原因：1.超时未支付 2.退款关闭 3.买家取消 15.已通过货到付款交易
         */
        interface CloseType {
            /**
             * 超时未支付
             */
            int unpaidAfterTimeout = 1;

            /**
             * 退款关闭
             */
            int refundClosed = 2;
            /**
             * 买家取消
             */
            int buyerCancels = 3;
            /**
             * 已通过货到付款交易
             */
            int passedCashOnDeliveryTransaction = 15;
        }

    }

    /**
     * 订单退款
     */
    interface OrderRefund {
        /**
         * 退款状态: 0.退款中 1.退款成功 -1.退款失败 -2.取消
         */
        interface State {
            /**
             * 退款中
             */
            int refunding = 0;
            /**
             * 退款完成
             */
            int completed = 1;
            /**
             * 退款失败
             */
            int failure = -1;
            /**
             * 取消
             */
            int cancel = -2;
        }

    }

    /**
     * 消息相关
     */
    interface Message {

        /**
         * 类型
         */
        interface Type {
            /**
             * 订单
             */
            int order = 1;
            /**
             * 系统
             */
            int system = 2;
        }

        /**
         * 绑定的数据类型
         */
        interface BindType {
            /**
             * 订单
             */
            int order = 1;
            /**
             * 视频评论
             */
            int videoComment = 2;
        }

        /**
         * 模板
         */
        interface Template {
            /**
             * 订单待支付
             */
            int order_unpaid = 1;
            /**
             * 订单已发货
             */
            int order_shipped = 2;
            /**
             * 订单已收货
             */
            int order_delivered = 3;
            /**
             * 订单已完成
             */
            int order_completed = 4;
            /**
             * 收到评论-标题
             */
            int system_received_comment_title = 5;
            /**
             * 收到评论-内容
             */
            int system_received_comment_content = 6;
            /**
             * 收到点赞
             */
            int system_received_like = 7;

            static String getTemplateStr(int template) {
                switch (template) {
                    case order_unpaid:
                        return "You have an unpaid order.";
                    case order_shipped:
                        return "The goods have been shipped.";
                    case order_delivered:
                        return "The goods have been delivered.";
                    case order_completed:
                        return "Transaction completed.";
                    case system_received_comment_title:
                        return "You have received a comment.";
                    case system_received_comment_content:
                        return "User %s has replied to you:%s";
                    case system_received_like:
                        return "You have received a like.";
                    default:
                        return null;
                }
            }
        }
    }

    /**
     * 消息
     */
    interface IM {

        /**
         * 账号
         */
        interface Account {

            /**
             * 用户类型
             */
            interface UserType {

                /**
                 * APP
                 */
                int app = 1;

                /**
                 * BMS
                 */
                int bms = 2;

            }

            /**
             * 账号类型
             */
            interface Platform {

                /**
                 * 腾讯
                 */
                int tencent = 1;

            }

        }
    }

    /**
     * 验证码
     */
    interface VerifyCode {
        /**
         * 类型：1.邮箱验证 2.短信验证
         */
        interface Type {
            /**
             * 邮箱验证
             */
            int email = 1;

            /**
             * 短信验证
             */
            int sms = 2;
        }

        /**
         * 场景：1.注册 2.忘记密码 3.修改密码 4.修改手机号
         */
        interface Scene {
            /**
             * 注册
             */
            int register = 1;
            /**
             * 忘记密码
             */
            int forgetPassword = 2;
            /**
             * 修改密码
             */
            int updatePassword = 3;
            /**
             * 修改手机号
             */
            int updateMobile = 4;
        }
    }


    /**
     * 世界地理数据
     */
    interface World {
        /**
         * 场景：region-区域 subregion-子区域 country-国家 state-州/省 city-城市
         */
        interface Scene {
            /**
             * 区域
             */
            String region = "region";
            /**
             * 子区域
             */
            String subregion = "subregion";
            /**
             * 国家
             */
            String country = "country";
            /**
             * 州/省
             */
            String state = "state";
            /**
             * 城市
             */
            String city = "city";
        }
    }
}

